package client

import "fmt"

// CtapiResponse CT openapi 请求响应体
type CtapiResponse[T interface{}] struct {
	StatusCode int    `json:"statusCode"` // 业务状态码，请参考具体业务的状态码，例如：800
	Error      string `json:"error"`      // 业务错误码（例如：CF_4000）
	Message    string `json:"message"`
	ReturnObj  T      `json:"returnObj"` // 返回的业务数据，一般是一个对象
}

type Response struct {
	Error *Error `json:"error"`
	Body  []byte `json:"body"`
}

func (r *Response) String() string {
	return fmt.Sprintf("body:%s , error:%s", string(r.Body), r.Error)
}

type Error struct {
	StatusCode int    `json:"statusCode"`
	Msg        string `json:"msg"`
}

func (e *Error) Error() string {
	return fmt.Sprint(e.StatusCode, " ", e.Msg)
}

func (e *Error) String() string {
	return fmt.Sprint(e.StatusCode, " ", e.Msg)
}
